using System;
using System.Data;
using System.Text;
using System.Collections.Generic;

#region user code using
#endregion user code using

namespace Adoor.Emprunts
{
	#region user code namespace
	#endregion user code namespace
	
	
	public abstract class Emprunt
	#region user code implements
	#endregion user code implements
	{
	
		public virtual System.Int32 DateEmprunt
		{
			get
			{
				System.Int32  value = this.m_DateEmprunt;
				#region user code get public System.Int32 DateEmprunt
				#endregion user code get public System.Int32 DateEmprunt
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 DateEmprunt
				#endregion user code set public System.Int32 DateEmprunt				
				this.m_DateEmprunt = value;
				OnDateEmpruntChanged();
			}
		}
		
		public event EventHandler DateEmpruntChanged;
		
		protected virtual void OnDateEmpruntChanged()
		{				
			if(DateEmpruntChanged != null)
				DateEmpruntChanged(this, System.EventArgs.Empty);			
					
			#region user code OnDateEmpruntChanged
			#endregion user code OnDateEmpruntChanged				
		}

		public virtual System.Int32 DateRestitution
		{
			get
			{
				System.Int32  value = this.m_DateRestitution;
				#region user code get public System.Int32 DateRestitution
				#endregion user code get public System.Int32 DateRestitution
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 DateRestitution
				#endregion user code set public System.Int32 DateRestitution				
				this.m_DateRestitution = value;
				OnDateRestitutionChanged();
			}
		}
		
		public event EventHandler DateRestitutionChanged;
		
		protected virtual void OnDateRestitutionChanged()
		{				
			if(DateRestitutionChanged != null)
				DateRestitutionChanged(this, System.EventArgs.Empty);			
					
			#region user code OnDateRestitutionChanged
			#endregion user code OnDateRestitutionChanged				
		}

		public virtual System.Boolean Restitue
		{
			get
			{
				System.Boolean  value = this.m_Restitue;
				#region user code get public System.Boolean Restitue
				#endregion user code get public System.Boolean Restitue
				return value; 
			}
			set
			{ 
				#region user code set public System.Boolean Restitue
				#endregion user code set public System.Boolean Restitue				
				this.m_Restitue = value;
				OnRestitueChanged();
			}
		}
		
		public event EventHandler RestitueChanged;
		
		protected virtual void OnRestitueChanged()
		{				
			if(RestitueChanged != null)
				RestitueChanged(this, System.EventArgs.Empty);			
					
			#region user code OnRestitueChanged
			#endregion user code OnRestitueChanged				
		}

		public virtual Adoor.Emprunts.Adherent Adherent
		{
			get
			{
				Adoor.Emprunts.Adherent  value = this.m_Adherent;
				#region user code get public Adoor.Emprunts.Adherent Adherent
				#endregion user code get public Adoor.Emprunts.Adherent Adherent
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Adherent Adherent
				#endregion user code set public Adoor.Emprunts.Adherent Adherent
				this.m_Adherent = value; 
				OnAdherentChanged();
			}
		}
		
		public event EventHandler AdherentChanged;
		
		protected virtual void OnAdherentChanged()
		{			
			if(AdherentChanged != null)
				AdherentChanged(this, System.EventArgs.Empty);
				
			#region user code OnAdherentChanged
			#endregion user code OnAdherentChanged
		}

		public virtual Adoor.Emprunts.Exemplaire ExemplaireEmprunte
		{
			get
			{
				Adoor.Emprunts.Exemplaire  value = this.m_ExemplaireEmprunte;
				#region user code get public Adoor.Emprunts.Exemplaire ExemplaireEmprunte
				#endregion user code get public Adoor.Emprunts.Exemplaire ExemplaireEmprunte
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Exemplaire ExemplaireEmprunte
				#endregion user code set public Adoor.Emprunts.Exemplaire ExemplaireEmprunte
				this.m_ExemplaireEmprunte = value; 
				OnExemplaireEmprunteChanged();
			}
		}
		
		public event EventHandler ExemplaireEmprunteChanged;
		
		protected virtual void OnExemplaireEmprunteChanged()
		{			
			if(ExemplaireEmprunteChanged != null)
				ExemplaireEmprunteChanged(this, System.EventArgs.Empty);
				
			#region user code OnExemplaireEmprunteChanged
			#endregion user code OnExemplaireEmprunteChanged
		}

		public virtual Adoor.Emprunts.Exemplaire Exemplaire
		{
			get
			{
				Adoor.Emprunts.Exemplaire  value = this.m_Exemplaire;
				#region user code get public Adoor.Emprunts.Exemplaire Exemplaire
				#endregion user code get public Adoor.Emprunts.Exemplaire Exemplaire
				return value; 
			}
			set
			{ 
				#region user code set public Adoor.Emprunts.Exemplaire Exemplaire
				#endregion user code set public Adoor.Emprunts.Exemplaire Exemplaire
				this.m_Exemplaire = value; 
				OnExemplaireChanged();
			}
		}
		
		public event EventHandler ExemplaireChanged;
		
		protected virtual void OnExemplaireChanged()
		{			
			if(ExemplaireChanged != null)
				ExemplaireChanged(this, System.EventArgs.Empty);
				
			#region user code OnExemplaireChanged
			#endregion user code OnExemplaireChanged
		}

		
		/// <summary>
		/// Called when user is creating a new entity.
		/// </summary>
		protected virtual void OnCreate(object[] args)
		{
			DateEmprunt = 0;		
	DateRestitution = 0;		
	Restitue = false;		
	
			#region user code OnCreate
			#endregion user code OnCreate			
		}
		
		/// <summary>
		/// Called when user is retreiving an entity from storage
		/// </summary>
		protected virtual void OnMaterialize()
		{
			#region user code OnMaterialize
			#endregion user code OnMaterialize
		}
		
		public virtual System.String ModifiePar
		{
			get
			{
				System.String  value = this.m_ModifiePar;
				#region user code get public System.String ModifiePar
				#endregion user code get public System.String ModifiePar
				return value; 
			}
		}
		
		public virtual System.DateTime ModifieLe
		{
			get
			{
				System.DateTime  value = this.m_ModifieLe;
				#region user code get public System.String ModifieLe
				#endregion user code get public System.String ModifieLe
				return value; 
			}
		}
		
		public virtual System.String TableName
		{
			get
			{
				System.String  value = this.m_TableName;
				#region user code get public System.String TableName
				#endregion user code get public System.String TableName
				return value; 
			}
		}
		
		protected abstract System.String m_ModifiePar { get; }
		
		protected abstract System.String m_TableName { get; }
		
		protected abstract System.DateTime m_ModifieLe { get; }
		
		
		protected abstract System.Int32 m_DateEmprunt { get; set; }

		protected abstract System.Int32 m_DateRestitution { get; set; }

		protected abstract System.Boolean m_Restitue { get; set; }

		protected abstract Adoor.Emprunts.Adherent m_Adherent { get; set; }

		protected abstract Adoor.Emprunts.Exemplaire m_ExemplaireEmprunte { get; set; }

		protected abstract Adoor.Emprunts.Exemplaire m_Exemplaire { get; set; }


		#region user code class
		#endregion user code class
	}
}
